package org.nuonuo.sdk.model.base;


import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * @Version 1.0
 * @Author az
 * @Date 2024-03-28 09:21:45
 * @ClassName InvoiceGoods
 * @Description
 */
public class InvoiceGoods {
    /**
     * 商品名称
     */
    @NotNull(message = "商品名称不能为空")
    private String goodsName;

    /**
     * 优惠政策标识: 0:不使用; 1:使用;
     */
    private String favouredPolicyFlag;
    /**
     * 优惠政策名称（当favouredPolicyFlag为1时，此项必填）
     */
    private String favouredPolicyName;
    /**
     * 商品编码
     */
    private String goodsCode;
    /**
     * 数量
     */
    private BigDecimal num;
    /**
     * 单价
     */
    private BigDecimal price;
    /**
     * 规格型号
     */
    private String specType;
    /**
     * 含税金额（精确到小数点后两位）
     */
    private BigDecimal taxIncludedAmount;
    /**
     * 税率（只支持0.xxx，需要生成二维码时必填）
     */
    private BigDecimal taxRate;
    /**
     * 单位（成品油时，必须有且只能是升或者吨）
     */
    private String unit;
    /**
     * 零税率标识: 空:非零税率; 1:免税; 2:不征税; 3:普通零税率;
     */
    private String zeroRateFlag;

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getFavouredPolicyFlag() {
        return favouredPolicyFlag;
    }

    public void setFavouredPolicyFlag(String favouredPolicyFlag) {
        this.favouredPolicyFlag = favouredPolicyFlag;
    }

    public String getFavouredPolicyName() {
        return favouredPolicyName;
    }

    public void setFavouredPolicyName(String favouredPolicyName) {
        this.favouredPolicyName = favouredPolicyName;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public BigDecimal getNum() {
        return num;
    }

    public void setNum(BigDecimal num) {
        this.num = num;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getSpecType() {
        return specType;
    }

    public void setSpecType(String specType) {
        this.specType = specType;
    }

    public BigDecimal getTaxIncludedAmount() {
        return taxIncludedAmount;
    }

    public void setTaxIncludedAmount(BigDecimal taxIncludedAmount) {
        this.taxIncludedAmount = taxIncludedAmount;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getZeroRateFlag() {
        return zeroRateFlag;
    }

    public void setZeroRateFlag(String zeroRateFlag) {
        this.zeroRateFlag = zeroRateFlag;
    }
}
